namespace OasisCiq.Xal
{
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using CommonTypes;
    using External;
    using XS;

    /// <summary>
    /// A delivery point/installation where all mails are delivered
    /// and the post man/delivery service picks up the mails and delivers it
    /// to the recipients through a delivery mode. Examples are a rural post
    /// office where post is delivered, a post office containing post office
    /// boxes/personal mail boxes. Note that not all countries have PostOffice.
    /// Can be used to represent overseas military addresses also
    /// along with PostalDeliveryPoint element
    /// </summary>
    public class PostOffice : IDataQualityGroup, IExtendedAttributes
    {
        /// <summary>
        /// Name or number of the post office in free text or structured form.
        /// </summary>
        public virtual ICollection<IdentifierType> Identifiers { get; set; }

        /// <summary>
        /// Indicates the type of postal delivery office from where
        /// the mail will be distributed to the final delivery point by
        /// a delivery mode. Example: Post Office,
        /// Mail Collection Centre, Letter Carrier Depot, Station, etc.
        /// </summary>
        public virtual PostOfficeTypeList Type { get; set; }

        public virtual DataQualityTypeList DataQualityType { get; set; }

        public virtual XSDateTime ValidFrom { get; set; }

        public virtual XSDateTime ValidTo { get; set; }

        public virtual NameValueCollection ExtendedAttributes { get; set; }
    }
}